交付全链路数据,苏宁消费金融在 DevOps 度量设计的思考
作者简介
顾黄亮,十年研发运维经验,涵盖基础架构、应用架构、数据库、DevOps,有互联网,电商,金融从业经历。专注于 DevOps 在企业中的应用和落地,致力于企业智慧运维体系的打造。参加多个行业、国家标准的编写,《开源许可证使用指南(2018)》作者之一,国标《研发运营一体化(DEVOPS)能力成熟度模型》作者之一,《企业IT运维发展白皮书》作者之一,曾供职于航天晨光、上汽集团云计算中心,现任苏宁消费金融安全运维部负责人。
近两年来,超过10家头部金融、互联网、云服务提供商等企业通过了《研发运营一体化(DevOps)能力成熟度模型》三级评估,通过这些经典案例,我们不难看出,DevOps加速了软件产品的版本交付和部署,实现端到端的持续交付,以流程驱动的方式打通端到端的交付通道。
苏宁消费金融践行 DevOps 过程中,发现交付服务重要组成部分,交付全链路数据,还采取断点的、无序的、度量性较差的传统方式,缺乏配套的全链路数据采集、管理、汇聚和输出,导致项目交付过程中的管控和交付后的评价缺乏科学、客观的可度量数据和度量体系,进而由流程驱动在积累一段时间后不能快速的推进至流程和数据双驱动的模式。
DevOps落地的方式大致有四种,如下图所示,(1)以项目周期数据为基准的;(2)以资源数据为基准的;(3)以交付数据为基准的;(4)以监控数据为基准的。
在这四种方式中,各窗口期的运维数据输出方式各不相同,以1、3为例,度量的手段囊括了资产、资源、版本质量、组织效率、工程环境,以2、4为例,更多的体现在项目的后评价、成本化复盘方面。
度量如何做,如何通过度量来进行过程和结果的管控,如何通过度量来优化现有流程,笔者认为遵循以下几点步骤。1、归集度量数据指标;2、度量数据指标拆解;3、确定度量数据维度;4、构建 DevOps 全链路度量体系。
一、归集度量数据指标
1、基于项目生命周期管理的终极目标在于交付的价值和投入产出比的最大化。所以体现在数据指标上,最直接的两个指标就是过程管理和项目后评价,其中过程管理又分为两个大类,分别为工程效率和人员能效。而项目后评价则侧重于项目达成和资源投入,具体的在指标分解中体现。
2、任何项目或者产品的上线都会有生命周期,即项目版本确定到项目上线的一个过程。而这个过程是可以分成多个阶段的。只要我们思考清楚如何使每个阶段的又快又好的达成终极目标,我们就可以归集出整个周期内所需要的大部分数据。项目生命周期管理按顺序可以分为五大阶段:
二、度量数据指标拆解
同样拿苏宁消费金融项目生命周期为基准的流水线举例,进行指标拆解:
项目指标:项目进度、项目工时、项目质量
需求指标:需求总数、各状态的需求总数、当前的需求完成情况、各业务方的需求总数、需求吞吐率
版本指标:版本数量、分支数量、仓库数量、代码提交数、代码提交频率
资源指标:工程环境数量、系统分配资源情况、团队分配资源情况、人员分配资源情况、资源可用数据、资源使用数据、资源性能数据
构建指标:构建次数、构建频率、构建时长、构建成功率
监控指标:监控覆盖率、监控送达率、监控准确率、线上问题统计、线上问题恢复时长
项目后评价指标:以产品运营核心指标为准 ,如PV\UV、行为、转化率、利润
三、确定度量数据维度
在确定度量数据维度之前,介绍下业内两种常用的方式,①数字维度,②类型维度。
软件是数字化的事物,根据度量维度的不同,涵盖相应的指标类型分别有
可具体的; 可度量的; 可实现的; 现实性的; 有时限的。
而具体的实施有几种方式,
计数实施,统计度量指标的数量、度量任务的数量、偏差的数量; 测量测算,统计状态的数据信息,如区间内递增值和递减值; 数据分布,统计数据的分布情况,如最大值、最小值、平均值、中位数、百分比; 计时,统计单位时间内的消耗时间和分布情况;
度量的难点,主要集中在度量的可视化不够健全、工作切分的随意性、敏捷交付过程中存在多项目的并行; 度量的误区,主要集中在过渡考核虚荣性指标,如日均代码量,局部单元测试覆盖率,工时统计等等,当虚荣性指标成为核心度量指标,那就是灾难的开始。 度量指标不能动态调整,随着团队的效能提升,指标也随之调整,否则将使团队的效能停滞不前。
确定度量指标维度有四个原则,分别是:
四、构建 DevOps 全链路度量体系
对于流程和数据双轨驱动的DevOps,打造和构建全链路的度量体系,通过自动化部署流水线有效提高软件交付的效率,通过质量内建确保软件交付的质量,通过对过程性数据的持续收集和分析发现交付过程中存在的瓶颈,通过对软件产品和用户的线上数据获取反馈并且及时作出调整,通过结果性数据去评价团队的成效。
以DevOps价值服务输出模型作为本次文章的结尾。
还不过瘾?GOPS 2020 全球运维大会 · 深圳站,更多 DevOps 的精彩议题,请参见大会日程(持续更新中)
流程可视化的利器:Jenkins BlueOcean
我只是下了个订单,鬼知道我在微服务里经历了什么…
DevOps 时代的软件过程改进探讨
震惊!DevOps CI/CD 竟然对抗击新冠期间的工作开展有这么大的作用?
“DevOps时代”公众号诚邀广大技术人员投稿。
投稿邮箱:jiachen@greatops.net 或 添加联系人微信:135 2116 9787(同微信)。
点击阅读原文,访问大会官网